Metering the usage of software products in a data processing system is of the utmost importance in several management applications. A typical example consists of a license management infrastructure, which is used to control the running of known software products on the system; an example of commercial license management infrastructure available on the market is based on the “IBM Tivoli License Manager (ITLM)” application by IBM Corporation.
The information so obtained about the usage of the software products is generally exploited for charge-back accounting (according to corresponding conditions of use). In this context, a recent trend in licensing strategies is of varying the charging rate of the software products according to the hardware configuration of the systems where they run, for example, increasing it with the number of (micro)processors available. However, a limitation of this model is that all the microprocessors are assumed to be equivalent from a pricing point of view (so that no difference exists between the use of the software products on low-end and high-end systems). This strategy leads to undercharging on high-end systems; vice-versa, it inhibits the use of the same software products on low-end systems (where there would be the perception of overcharging).
In order to solve the above-mentioned problem, it has been proposed to classify the microprocessors according to their processing power; in this way, it would be possible to discriminate the usage of the software products on different systems (so as to apply corresponding charging rates, typically increasing with the processing power).
However, the implementation of the above-described mechanism is decidedly nontrivial. Indeed, first of all it is necessary to establish a standard benchmark for weighting the microprocessors (so as to allow associating the correct charging rates). Moreover, a catalogue of all the existing microprocessor types (with their weights) must be available to the licensing application; this also imposes the burden of keeping the catalogue constantly up-to-date.
In any case, technical difficulties are experienced whenever the system does not consist of a real computer. For example, the system may be implemented by a logical partition of a (physical) host machine; those solutions are becoming more and more popular, since they allow simulating a high number of (logical) guest machines that are very easy to maintain (without requiring the proliferation of different real computers). However, very often in this condition the system does not have the possibility of gathering the configuration information that is required by the licensing application (for example, the number and type of microprocessors); indeed, this information may be hidden to the guest machines, because of either a deliberate design choice or an intrinsic limitation of the environment.